An example of nonvolatile semiconductor memories is an NAND flash memory. The NAND flash memory has different types such as a single-level cell (SLC), a multi-level cell (MLC) and an enterprise MLC (eMLC). Different types of NAND flash memories have different characteristics. For example, the upper limit in the number of erases differs depending on the type of NAND flash memory.